Recommending an exercise activity for a user

ABSTRACT

Methods, apparatuses, and computer readable mediums for recommending an exercise activity for a user are provided. In a particular embodiment, the recommendation evaluation controller is configured to match a generated motion pattern that is based on sensed motion a user with a stored motion pattern selected from a plurality of stored motion patterns, where each stored motion pattern corresponds to a particular exercise activity. In the particular embodiment, the recommendation evaluation controller is also configured to identifying, based on the selected stored motion pattern and an historical exercise activity record for the user, by the recommendation evaluation controller, a recommended exercise activity for the user to perform. In the particular embodiment, the recommendation evaluation controller is also configured to provide an indication of the recommended exercise activity.

BACKGROUND

1. Field of the Invention

The field of the invention is data processing, or, more specifically, methods, apparatuses, and computer readable mediums for recommending an exercise activity for a user.

2. Description of Related Art

The health benefits of regular exercise and physical activity are well documented. However, not all exercise regimens are equal. The duration, combination, and type of exercise activities performed by a person may control the degree to which a workout event will be effective in advancing the person's fitness goals. One of the biggest deterrents to a person developing and executing an effective workout is lack of understanding of the various factors that should be considered in selecting the specific exercise activities to perform during an exercise event.

SUMMARY

Methods, apparatuses, and computer readable mediums for recommending an exercise activity for a user are provided. In a particular embodiment, the recommendation evaluation controller is configured to match a generated motion pattern that is based on sensed motion a user with a stored motion pattern selected from a plurality of stored motion patterns, where each stored motion pattern corresponds to a particular exercise activity. In the particular embodiment, the recommendation evaluation controller is also configured to identifying, based on the selected stored motion pattern and an historical exercise activity record for the user, by the recommendation evaluation controller, a recommended exercise activity for the user to perform. In the particular embodiment, the recommendation evaluation controller is also configured to provide an indication of the recommended exercise activity.

The foregoing and other objects, features and advantages of the present disclosure will become apparent after review of the entire application, including the following sections: Brief Description of the Drawings, Detailed Description, and the Claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 sets forth a diagram of an illustrative embodiment of an apparatus for recommending an exercise activity for a user.

FIG. 2 sets forth a block diagram of another illustrative embodiment of an apparatus for recommending an exercise activity for a user.

FIG. 3A sets forth a diagram illustrating a time-line of sense data corresponding to an example motion pattern used for recommending an exercise activity for a user.

FIG. 3B sets forth a diagram illustrating a time-line of sense data corresponding to another example motion pattern used for recommending an exercise activity for a user.

FIG. 4 sets forth a flow chart illustrating an example embodiment of a method for recommending an exercise activity for a user.

FIG. 5 sets forth a flow chart illustrating another example embodiment of a method for recommending an exercise activity for a user.

FIG. 6 sets forth a flow chart illustrating another example embodiment of a method for recommending an exercise activity for a user.

FIG. 7 sets forth a flow chart illustrating another example embodiment of a method for recommending an exercise activity for a user.

FIG. 8 sets forth a data flow diagram illustrating a manufacturing process for a device for recommending an exercise activity for a user.

DETAILED DESCRIPTION

FIG. 1 sets forth a diagram of an illustrative embodiment of an apparatus (100) for recommending an exercise activity for a user (150). In the example of FIG. 1, the apparatus (100) includes a wearable monitoring device (101), an optical head-mounted display device (103), a phone (196), and a server (106).

A wearable monitoring device is any device that is wearable and includes automated computing machinery for monitoring a user. Non-limiting examples of wearable monitoring devices include smart wristwatches, bracelets, straps, pendants, and any other forms of wearable devices capable of monitoring a user. In the example of FIG. 1, the wearable monitoring device (101) is a smart strap attached to the wrist of the user (150). Readers of skill in the art will recognize that wearable monitoring devices may be placed on any number of locations on a user.

As part of ‘monitoring’ a user, a wearable monitoring device may be configured to utilize data from one or more sensors that are either coupled to the wearable monitoring device or are part of the wearable monitoring device. Non-limiting examples of the types of sensors that may be available to a wearable monitoring device include a hydration sensor, a heart rate monitor, an ECG monitor, a pulse oximeter, a thermometer, an electromyography (EMG) sensor, an accelerometer, a gyroscope, a Global Positioning System (GPS) location sensor, an environmental condition sensor, and many other types of sensors.

To acquire data from these sensors, a wearable monitoring device may include data acquisition (DAQ) hardware for periodically polling or receiving data from one or more of the sensors available to the wearable monitoring device. For example, circuitry within the wearable monitoring device may monitor the existence and strength of a signal from a sensor and process any signals received from the sensor. The wearable monitoring device (101) may also include circuitry for processing the sensor data. For example, the wearable monitoring device (101) may include circuitry for converting sensor data to another data form, such as motion data, physiological data, or environmental condition data. That is, the wearable monitoring device (101) of FIG. 1 may include the computing components necessary to receive, process, and transform sensor data into a type of data that is usable in a process for recommending an exercise activity for a user.

In the example of FIG. 1, the wearable monitoring device (101) includes a recommendation evaluation controller (199) comprised of automated computing machinery configured for recommending an exercise activity for the user (150). Specifically, the recommendation evaluation controller (199) is configured to recommend an exercise activity for a user by generating a motion pattern based on data indicating a sensed motion of the user (150). Data indicating a sensed motion of the user (150) may be generated based on information from one or more sensors available to the wearable monitoring device (101). For example, an accelerometer may generate acceleration data that indicates the motion of the user (150). Continuing with this example, the recommendation evaluation controller (199) may use the acceleration data or converted data based on the acceleration data to generate the motion pattern.

A motion pattern is a collection of motion data over a period of time. The motion data of a motion pattern may be based on data from multiple sensors and multiple types of sensors. As part of generating a motion pattern, the recommendation evaluation controller (199) may aggregate sensor data from one or more sensors to generate a collection of motion data over a period of time. For example, a particular generated motion pattern may have first acceleration data generated by an accelerometer on a first axis, second acceleration data generated by an accelerometer on a second axis, third acceleration data generated by an accelerometer on a third axis, and gyroscope data generated by a gyroscope.

The recommendation evaluation controller (199) is also configured to match the generated motion pattern with a stored motion pattern selected from a plurality of stored motion patterns. Each stored motion pattern is a motion pattern that is predetermined to correspond with a particular exercise activity. Specifically, a stored motion pattern includes motion data predetermined to correspond with a particular type of user movement associated with a user performing a specific exercise activity. For example, a first stored motion pattern may include a collection of acceleration data that have previously been determined to correspond with a user walking. In another example, a second stored motion pattern may include a collection of acceleration data that have previously been determined to correspond with a user performing push-ups. By matching the generated motion pattern with a stored motion pattern, the recommendation evaluation controller (199) may identify the type of exercise activity that the user (150) is performing.

The recommendation evaluation controller (199) is also configured to recommend an exercise activity for a user by identifying, based on the selected stored motion pattern and an historical exercise activity record for the user, a recommended exercise activity for the user to perform. An historical exercise activity record is an indication or log of the previous exercise activities of the user. Non-limiting examples of the type of information contained within an historical exercise activity record may include: the exercise activities the user performed in a particular time period, such as the last week; the times the activities were performed; duration of activities; environmental conditions; physiological state of user during activities; caloric intake of user; and recommended exercise activities provided to the user during a workout event. A workout event is a period of time during which a user nearly continuously performs exercise activities. A recommended exercise activity is a type of exercise activity that the recommendation evaluation controller recommends, considering the historical exercise activity record, that the user should perform next. For example, an historical exercise activity record may indicate that a user did cardio exercises on Monday and performed chest and shoulder exercise activities on Tuesday. In this example, if the user begins an exercise event on Wednesday by performing weightlifting exercise activities targeting the user's upper body muscle group, the recommendation evaluation controller may determine that the user's upper body muscle group needs to rest and therefore recommend to the user during the weightlifting exercise activity on Wednesday that the user do a cardio exercise activity instead.

Identifying a recommended exercise activity for the user to perform based on the selected stored motion pattern may include identifying exercises that are similar or in the same exercise category as the exercise activity that the user is currently performing, as indicated by the selected stored motion pattern. For example, if a user begins an exercise event by going for a run, the recommendation evaluation controller may infer that the user is currently interested in performing cardio exercise activities. In this example, the recommendation evaluation controller may recommend another cardio exercise activity for the user to perform next. As another example, if a user begins an exercise event by doing bench press, the recommendation evaluation controller may infer that the user is interested in working out pectoral muscles during this exercise event. In this example, the recommendation evaluation controller may recommend another pectoral muscle exercise activity that targets pectoral muscles. That is, the identification of the exercise activity that the user is currently performing is used to get insight into what type of exercise activity the user is interested in performing. The recommendation evaluation controller may then use this insight to better identify recommended exercise activities the user is interested in performing.

Identifying a recommended exercise activity for the user to perform based on the selected stored motion pattern may also include using the identification of the exercise activity that the user is currently performing to identify muscle groups and body parts that the user is exercising. The recommendation evaluation controller can then use this identification of muscle groups and body parts to recommend a next exercise activity that complements the exercise activity the user has already performed. For example, if the recommendation evaluation controller determines that the user has performed the bench press and the incline press, the recommendation evaluation controller may determine that the user has worked out the pectoral muscle group enough and that the user should next switch to an exercise activity that works out complementary muscles. For example, the recommendation evaluation controller may recommend shoulder or triceps exercises following pectoral workouts.

In a particular embodiment, identifying a recommended exercise activity may be further based on environmental condition data indicating a condition of an environment of the user that the user is experiencing. Environmental condition data may include any data indicating an environment that the user is performing the exercise activity. In a particular embodiment, environmental condition data may indicate weather conditions, such as humidity level, precipitation measurements, cloud coverage, and temperature. Environmental condition data may also indicate whether the user is inside or outside. For example, a user may provide input to the wearable monitoring device indicating that the user is indoors. In another embodiment, environmental condition data may be measured by the wearable monitoring device. For example, the wearable monitoring device may include a sensor that monitors humidity level or temperature surrounding the wearable monitoring device. In another embodiment, the wearable monitoring device may uses one or more network interfaces to receive indications of environmental conditions, such as from a weather indication application, or from a local environmental condition indication device, such as a networked humidity and temperature sensor. In a particular embodiment, identifying a recommended exercise activity may be further based on an identified fitness goal of the user. An identified fitness goal of a user is any indication of the fitness goal a user is trying to achieve. Non-limiting examples of fitness goals include losing weight, gaining weight, building muscle, burning fat, building cardio endurance, building high intensity short interval cardio endurance, building long distance cardio endurance, or any indication of a change or measure that the user is interesting in achieving. For example, a user may indicate that the user's fitness goal is to build muscle. Continuing with this example, the recommendation evaluation controller (199) may recommend that a user stop running and instead perform another exercise activity, such as leg squats, which target the same muscle group as running but may result in a faster gain in muscle mass than running.

Identifying a recommended exercise activity may also be further based on a caloric intake of a user. A user may input the caloric intake to the wearable monitoring device or the wearable monitoring may retrieve the information regarding caloric intake from another device, such as a network server. In a particular embodiment, the recommendation evaluation controller (199) receives an indication of the number of calories that the user has consumed. For example, the user (150) may specify that three thousand calories have been consumed during the day. In this example, the recommendation evaluation controller may determine that the user has consumed too many calories and therefore the recommendation evaluation controller may recommend an exercise activity that has a higher calorie burn rate than the exercise activity that the user is currently performing. Continuing with this example, the recommendation evaluation controller may also include a suggested duration to perform the recommended exercise activity. In another embodiment, the recommendation evaluation controller (199) receives an indication of the type of food that the user consumed during the day. For example, the user may specify high carbohydrate foods were recently consumed. Continuing with this example, the recommendation evaluation controller may determine that given the user's carbohydrate consumption, the user's most effective workout would be a cardio exercise activity. In this example, the recommendation evaluation controller may recommend a user stop performing a weight lighting exercise activity and instead switch to a cardio exercise activity.

In a particular embodiment, identifying a recommended exercise activity for the user to perform is further based on physiological data. Physiological data is data generated from sensors monitoring one or more vital signs of a user. Non-limiting examples of physiological data include hydration measurements, heart rate, oxygen saturation, temperature, muscle contractions, blood pressure, and any other types of measurements indicating a vital sign of a person. Identifying a recommended exercise activity based on physiological data may include comparing the physiological data to a threshold and recommending a different exercise activity that may lower a value of the physiological data to below the threshold. For example, the physiological data may indicate a hydration level of a user. In this example, the recommendation evaluation controller may determine if the hydration level of the user is below a hydration level threshold and recommend a specific type of exercise activity if the user's hydration level is below the hydration level threshold. The recommendation evaluation controller may also include a specific hydration level threshold for each particular exercise activity. For example, if a user is running outside and the recommendation evaluation controller determines that the user's hydration level is below the hydration level threshold associated with running outside, the recommendation evaluation controller may recommend an exercise activity that is indoors where the environment is cooler and less humid than outdoors.

In a particular embodiment, identifying a recommended exercise activity may also include identifying a length of time that the user should continue performing the current exercise activity and a starting time for the user to begin performing the recommended exercise activity. For example, the recommendation evaluation controller may determine that the user should continue running for another eight minutes and then the user should do push-ups. In another example, the recommendation evaluation controller may determine that the user should continue running for one more miles and then the user should do curls.

In the example of FIG. 1, the recommendation evaluation controller (199) is also configured to recommend an exercise activity for a user by using the historical exercise activity record to determine the quality of performance of an exercise activity. For example, the recommendation evaluation controller may track information associated with the user's performance of exercise activities including but not limited to historical information indicating variations in the user's form of performing an exercise activity in comparison to a predefined form. Based on the comparison of the tracked information to the associated historical information, the recommendation evaluation controller (199) may be configured to determine if the user is improving in the form of the exercise activity.

In the example of FIG. 1, the recommendation evaluation controller (199) is also configured to recommend an exercise activity for a user by using the historical exercise activity record to determine a rate of improvement of the user in performing an exercise. In a particular embodiment, the recommendation evaluation controller may track information associated with the user's performance of exercise activities including but not limited to the intensity, duration, and number of exercise activities performed in a particular exercise event; and compare the tracked information to associated historical information in the historical exercise activity record. Based on the comparison of the tracked information to the associated historical information, the recommendation evaluation controller (199) may be configured to determine the rate of improvement in the user.

In the example of FIG. 1, the recommendation evaluation controller (199) is also configured to recommend an exercise activity for a user by providing an indication of the recommended exercise activity. Providing an indication of the recommended exercise activity may be carried out communicating the indication of the recommended exercise activity to the user. Providing an indication of the recommended exercise activity may also include communicating an explanation for why the recommended exercise activity is being recommended. For example, the recommendation evaluation controller may transmit an audio message to the user via a speaker or audio output on the wearable monitoring device. In this example, the audio message may identify the recommended exercise activity along with an explanation for why the recommended exercise activity is being recommended. Non-limiting examples of explanations for why the recommended exercise activity is being recommended include: “this exercise activity is more in line with your fitness goals”; “you have performed the same exercise activity over the last week—variation may improve performance, try this exercise activity”; “this exercise activity should help you burn more calories”.

As another example, the recommendation evaluation controller may transmit a visual output to a screen of the wearable monitoring device. In this example, the visual output may display the recommended exercise activity along with an explanation for why the recommended exercise activity is being recommended. Examples of visual output may include a displayed message, an animated avatar performing the recommended exercise activity, and many others as will occur to Readers of skill in the art.

In a particular embodiment, providing an indication of the recommended exercise activity may include transmitting the indication to a recommendation presentation controller (195). A recommendation presentation controller includes automated computing machinery configured to receive the indication of the recommended exercise activity. In the example of FIG. 1, the phone (196) and the optical head-mounted display device (103) both include a recommendation presentation controller (195). The phone (196) and the optical head-mounted display device (103) may include visual and audio outputs for providing the indication of the recommended exercise activity for the user. The wearable monitoring device (101) of FIG. 1 also includes a recommendation presentation controller (195). However, Readers of skill in the art will realize that the recommendation presentation controller (195) and the recommendation evaluation controller (199) need not be incorporated into the same device.

The recommendation evaluation controller (199) may also be configured to provide an indication of the recommended exercise activity to another device. For example, the recommendation evaluation controller (199) may provide the indication of the recommended exercise activity to a server (106) via a network (172). The server (106) includes a recommendation evaluation monitor (197). A recommendation evaluation monitor (197) may include automated computing machinery configured to receive the indication of the recommended exercise activity; the sensor data; and the motion patterns. The recommendation evaluation monitor (197) may also be configured to act as a database repository for any motion data, motion patterns, physiological data, environmental condition indications, and any other type of data that the recommendation evaluation controller (199) may utilize to identify and provide a recommended exercise activity to a user. The recommendation evaluation monitor (197) may be configured to provide this stored data to the recommendation evaluation controller (199). The recommendation evaluation monitor (197) may also be configured to act as a central repository for multiple users so that users can share performance results, physiological data, sensed data, environmental conditions, recommended exercise activities, and explanations for the recommended exercise activities. For example, a user of the wearable monitoring device (101) may forward a recommended exercise activity to another user or transmit a message encouraging another user along with indications of how the user is performing the exercise activities.

Referring to FIG. 2, an illustrative apparatus (200) for recommending an exercise activity for a user is shown. The apparatus (200) includes a controller (291) that includes a processor (214), read only memory (ROM) (216), random access memory (RAM) (218). The RAM (218) includes a recommendation evaluation controller (299) and a recommendation presentation controller (295). Although, in the example of FIG. 2, the recommendation evaluation controller (299) and the recommendation presentation controller (295) are included in RAM (218), Readers of skill in the art will recognize that the recommendation evaluation controller (299) and the recommendation presentation controller (295) may be included in other storage locations, such as the ROM (216) and an external storage unit (260), which is coupled for data communications with the controller (291).

In the example of FIG. 2, the apparatus (200) also includes a power supply (288), a screen (222), a screen controller (250), a network interface (224), an input/output controller (232) having a speaker (228) and a button (230), a data acquisition processing unit (DAQ) (283), and a sensor unit (203). The sensor unit (203) of FIG. 2 includes sensors for generating, capturing, and transmitting motion data. In the example of FIG. 2, the sensor unit (203) includes an accelerometer (210), a gyroscope (211), and a global positioning system unit (212).

An accelerometer measures proper acceleration, which is the acceleration it experiences relative to freefall and is the acceleration felt by people and objects. Put another way, at any point in spacetime the equivalence principle guarantees the existence of a local inertial frame, and an accelerometer measures the acceleration relative to that frame. Such accelerations are popularly measured in terms of g-force. Conceptually, an accelerometer behaves as a damped mass on a spring. When the accelerometer experiences an acceleration, the mass is displaced to the point that the spring is able to accelerate the mass at the same rate as the casing. The displacement is then measured to give the acceleration. Modern accelerometers are often small micro electro-mechanical systems (MEMS), and are indeed the simplest MEMS devices possible, consisting of little more than a cantilever beam with a proof mass (also known as seismic mass). Damping results from the residual gas sealed in the device. As long as the Q-factor is not too low, damping does not result in a lower sensitivity. Most micromechanical accelerometers operate in-plane, that is, they are designed to be sensitive only to a direction in the plane of the die. By integrating two devices perpendicularly on a single die a two-axis accelerometer can be made. By adding another out-of-plane device three axes can be measured. Such a combination may have much lower misalignment error than three discrete models combined after packaging. Micromechanical accelerometers are available in a wide variety of measuring ranges, reaching up to thousands of g's.

A gyroscope is a device for measuring or maintaining orientation, based on the principles of angular momentum. Mechanical gyroscopes typically comprise a spinning wheel or disc in which the axle is free to assume any orientation. Although the orientation of the spin axis changes in response to an external torque, the amount of change and the direction of the change is less and in a different direction than it would be if the disk were not spinning. When mounted in a gimbal (which minimizes external torque), the orientation of the spin axis remains nearly fixed, regardless of the mounting platform's motion. Gyroscopes based on other operating principles also exist, such as the electronic, microchip-packaged MEMS gyroscope devices found in consumer electronic devices, solid-state ring lasers, fibre optic gyroscopes, and the extremely sensitive quantum gyroscope. A MEMS gyroscope takes the idea of the Foucault pendulum and uses a vibrating element, known as a MEMS (Micro Electro-Mechanical System). The integration of the gyroscope has allowed for more accurate recognition of movement within a 3D space than the previous lone accelerometer within a number of smartphones. Gyroscopes in consumer electronics are frequently combined with accelerometers (acceleration sensors) for more robust direction- and motion-sensing.

The Global Positioning System (GPS) is a space-based satellite navigation system that provides location and time information in all weather conditions, anywhere on or near the Earth where there is an unobstructed line of sight to four or more GPS satellites. In general, GPS receivers are composed of an antenna, tuned to the frequencies transmitted by the satellites, receiver-processors, and a highly stable clock (often a crystal oscillator).

The sensor unit (203) of FIG. 2 also includes a sensor (213) for generating, capturing, and transmitting environmental condition data. Environmental condition data may include any indications of the environment that the user is performing the exercise activity. In a particular embodiment, environmental condition data may indicate weather conditions, such as humidity level, precipitation measurements, cloud coverage, and temperature. Environmental conditions may also indicate whether the user is inside or outside. For example, a user may provide input to the wearable monitoring device indicating that the user is indoors. In another embodiment, environmental condition data may be measured by the wearable monitoring device. For example, the wearable monitoring device may include a sensor that monitors humidity level or temperature surrounding the wearable monitoring device. In another embodiment, the wearable monitoring device may uses one or more network interfaces to receive indications of environmental conditions, such as from a weather indication application, or from a local environmental condition indication device, such as a networked humidity and temperature sensor.

The sensor unit (203) of FIG. 2 also includes sensors for generating, capturing, and transmitting physiological data. In the example of FIG. 2, the sensor unit (203) includes a hydration sensor (204), a heart rate monitor (205), an electrocardiograph (ECG) monitor (206), a pulse oximeter (207), a thermometer (208), and an electromyograph (209) for performing electromyography (EMG).

A hydration sensor may be any type of sensor capable of measuring a hydration level of a person. Measuring a hydration level of a person may be performed by a variety of methods via a variety of systems, including but not limited to measuring transepidermal water loss (TWL) with a skin hydration probe. TWL is defined as the measurement of the quantity of water that passes from inside a body through the epidermal layer (skin) to the surrounding atmosphere via diffusion and evaporation processes.

A heart rate monitor (HRM) typically functions by detecting an electrical signal that is transmitted through the heart muscle as the heart contracts. This electrical activity can be detected through the skin. An ECG monitor also generates an activity pattern based on electrical activity of the heart. On the ECG, instantaneous heart rate is typically calculated using the R wave-to-R wave (RR) interval and multiplying/dividing in order to derive heart rate in heartbeats/min.

A pulse oximeter is a medical device that indirectly monitors the oxygen saturation of a user's blood (as opposed to measuring oxygen saturation directly through a blood sample) and changes in blood volume in the skin, producing a photoplethysmogram. A typical pulse oximeter utilizes an electronic processor and a pair of small light-emitting diodes (LEDs) facing a photodiode through a translucent part of the patient's body, usually a fingertip or an earlobe. One LED is red, with wavelength of 660 nm, and the other is infrared with a wavelength of 940 nm. Absorption of light at these wavelengths differs significantly between blood loaded with oxygen and blood lacking oxygen. Oxygenated hemoglobin absorbs more infrared light and allows more red light to pass through. Deoxygenated hemoglobin allows more infrared light to pass through and absorbs more red light. The LEDs flash about thirty times per second which allows the photodiode to respond to the red and infrared light separately. The amount of light that is transmitted (in other words, that is not absorbed) is measured, and separate normalized signals are produced for each wavelength. These signals fluctuate in time because the amount of arterial blood that is present increases (literally pulses) with each heartbeat. By subtracting the minimum transmitted light from the peak transmitted light in each wavelength, the effects of other tissues is corrected for. The ratio of the red light measurement to the infrared light measurement is then calculated by the processor (which represents the ratio of oxygenated hemoglobin to deoxygenated hemoglobin), and this ratio is then converted to SpO2 by the processor via a lookup table.

A thermometer is a device that measures temperature or a temperature gradient using a variety of different principles. A thermistor is an example of a type of thermometer that may be used to measure temperature. A thermistor is a type of resistor whose resistance varies significantly with temperature, more so than in standard resistors. The word is a portmanteau of thermal and resistor. Thermistors are widely used as inrush current limiters, temperature sensors, self-resetting overcurrent protectors, and self-regulating heating elements.

An electromyograph detects the electrical potential generated by muscle cells when these cells are electrically or neurologically activated. The signals can be analyzed to detect medical abnormalities, activation level, or recruitment order or to analyze the biomechanics of human or animal movement.

The data acquisition (DAQ) hardware (283) is configured for periodically polling or receiving data from one or more sensors. For example, circuitry within the DAQ (283) may monitor the existence and strength of a signal from a sensor and process any signals received the sensor. The DAQ (283) may also include circuitry for processing the sensor data. For example, the DAQ (283) may include circuitry for conversion of sensor data to another data form, such as motion data, physiological data, or environmental condition data. That is, the DAQ (283) of FIG. 2 may include the computing components necessary to receive, process, and transform sensor data into a type of data that is usable in a process for recommending an exercise activity for a user.

The recommendation evaluation controller (299) comprises automated computing machinery configured to recommend an exercise activity for a user. Specifically, the recommendation evaluation controller (299) is configured to generate a motion pattern (261) based on sensed motion of a user as indicated by sensed data (265); match the generated motion pattern (261) with a stored motion pattern (263) selected from a plurality of stored motion patterns (262); identify, based on the selected stored motion pattern (263) and an historical exercise activity record (266), a recommended exercise activity (264) for the user to perform; and provide an indication of the recommended exercise activity.

The controller (291) is also coupled to a network interface (224), such as an Ethernet port, modem port or other network port adapter. The network interface (224) is adapted to connect to a network and to send data to a recommendation presentation controller or a recommendation evaluation monitor located on a separate device. The network may include one or a combination of any type of network such as LAN, WAN, WLAN, public switched telephone network, GSM, or otherwise.

In a particular embodiment, the power supply (288) may include circuitry used for inductive charging. Inductive charging (also known as “wireless charging”) uses an electromagnetic field to transfer energy between two objects. This is usually done with a charging station. Energy is sent through an inductive coupling to an electrical device, which can then use that energy to charge batteries or run the device. Induction chargers typically use an induction coil to create an alternating electromagnetic field from within a charging base station, and a second induction coil in the portable device takes power from the electromagnetic field and converts it back into electrical current to charge the battery. The two induction coils in proximity combine to form an electrical transformer. Greater distances between sender and receiver coils can be achieved when the inductive charging system uses resonant inductive coupling. Recent improvements to this resonant system include using a movable transmission coil (i.e., mounted on an elevating platform or arm), and the use of advanced materials for the receiver coil made of silver plated copper or sometimes aluminum to minimize weight and decrease resistance due to the skin effect.

For further explanation, FIG. 3A sets forth a diagram illustrating a time-line of sense data corresponding to an example motion pattern (300) and FIG. 3B sets forth a diagram illustrating a time-line of sense data corresponding to another example motion pattern (301). In the examples of FIG. 3A and FIG. 3B, the stored motion patterns (300, 301) includes portions of a collection of acceleration data. Each motion pattern may be an example of a stored motion pattern or a generated motion pattern. According to embodiments, a recommendation evaluation controller may match a user motion pattern to a stored motion pattern to identify a type of exercise activity that the user is performing.

In the example of FIG. 3A and FIG. 3B, the acceleration data is represented by sensed data on the x-axis (350, 360), sensed data on the y-axis (352, 362), and sensed data on the z-axis (354, 364). Readers of skill in the art will realize, however, that the illustrated motion patterns are only examples and any number of orientations may be used to represent motion patterns. In addition, other types of sense data may be combined to form a motion pattern. For example, gyroscope data may be combined with acceleration data to form a motion pattern.

For further explanation, FIG. 4 sets forth a flow chart illustrating an example embodiment of a method for recommending an exercise activity for a user. The method of FIG. 4 includes a recommendation evaluation controller (499) generating (402) a motion pattern (452) based on sensed motion (450) of a user (150). According to particular embodiments, a sensor may generate data representing the motion of the user. Non-limiting examples of sensors that can generate sensed motion data include an accelerometer, a gyroscope, an air pressure detector, an inclinometer, and a GPS device. Generating (402) a motion pattern (452) based on sensed motion (450) of a user (150) may be carried out by aggregating data from the one or more motion detection devices or sensors and examining the aggregated data to create a pattern of motion. For example, acceleration data from an accelerometer may indicate a horizontal movement and gyroscope data from a gyroscope may indicate a degree of spin along one or more axes. In this example, the recommendation evaluation controller (499) may combine the acceleration data and the gyroscope data to generate an aggregate pattern of movement.

The method of FIG. 4 also includes the recommendation evaluation controller (499) matching (404) the generated motion pattern (452) with a stored motion pattern (456) selected from a plurality (462) of stored motion patterns. A stored motion pattern is a predetermined pattern that corresponds to a particular exercise activity. In the example of FIG. 4, each stored motion pattern corresponds to a particular exercise activity. For example, a first stored motion pattern may correspond to a user walking, a second stored motion pattern may be associated with a user performing pushups, and a third stored motion pattern may correspond to a user doing jumping jacks. The recommendation evaluation controller (499) may include or have access to an entire library of stored motion patterns.

In particular embodiments, the library of stored motion patterns may be customized to each user's particular performance of an exercise activity. For example, during a learning phase, the recommendation evaluation controller may record user motion and store it as a personalized motion pattern indicating a user exercise activity. In this example, a user may perform an exercise such as walking and the unique characteristics of the user's gait may be incorporated into the motion pattern.

In other embodiments, the recommendation evaluation controller (499) uses generic stored motion patterns that do not correspond specifically to a user. In this example, the recommendation evaluation controller (499) can allow for minor deviations between the user's generated motion pattern and the generic stored motion patterns when identifying matches. The recommendation evaluation controller (499) may also be configured to modify the generic stored motion patterns based on a user motion pattern. For example, the recommendation evaluation controller may use the generic stored motion pattern as a template that can be modified or customized to match a generated motion pattern associated with a motion from a user.

Matching (404) the generated motion pattern (452) with a stored motion pattern (456) selected from a plurality (462) of stored motion patterns may be carried out by utilizing pattern matching algorithms. In a particular embodiment, the algorithms may have the sophistication to accurately match a wide range of motions and recognize individual characteristics of a given user allowing for minor variations arising from randomness in motion.

The method of FIG. 4 also includes the recommendation evaluation controller (499) identifying (406), based on the selected stored motion pattern (456) and an historical exercise activity record (470) for the user, a recommended exercise activity (468) for the user (150) to perform. An historical exercise activity record is an indication or log of the previous exercise activities of the user. Non-limiting examples of the type of information contained within an historical exercise activity record may include: the exercise activities the user performed in a particular time period, such as the last week; the type of exercise activity including rest period activities between sets of the same exercise activity and rest period activities between sets of different exercise activities; the times the activities were performed; duration of activities; environmental conditions; physiological state of user during activities; caloric intake of user; and recommended exercise activities provided to the user during a workout event. A workout event is a period of time during which a user continuously or nearly continuously performs exercise activities. A recommended exercise activity is a type of exercise activity that the recommendation evaluation controller recommends the user should perform next considering the historical exercise activity record. For example, an historical exercise activity record may indicate that a user did cardio exercises on Monday and performed chest and shoulder exercise activities on Tuesday. In this example, if the user begins an exercise event on Wednesday by weightlifting, the recommendation evaluation controller may determine that the user's upper body muscle groups need to rest and therefore recommend to the user during the weightlifting exercise activity on Wednesday that the user do a cardio exercise activity instead.

Identifying (406), based on the selected stored motion pattern (456) and the historical exercise activity record (470), a recommended exercise activity (468) for the user (150) to perform may be carried out by identifying exercises that are similar or in the same exercise category as the exercise activity that the user is currently performing, as indicated by the selected stored motion pattern. For example, if a user begins an exercise event by going for a run, the recommendation evaluation controller may infer that the user is currently interested in performing cardio exercise activities. In this example, the recommendation evaluation controller may recommend another cardio exercise activity for the user to perform next. As another example, if a user begins an exercise event by doing bench press, the recommendation evaluation controller may infer that the user is interested in working out pectoral muscles during this exercise event. In this example, the recommendation evaluation controller may recommend another pectoral muscle exercise activity that targets pectoral muscles. That is, the identification of the exercise activity that the user is currently performing is used to get insight into what type of exercise activity the user is interested in performing. The recommendation evaluation controller may then use this insight to better identify recommended exercise activities the user is interested in performing.

Identifying (406), based on the selected stored motion pattern (456) and the historical exercise activity record (470), a recommended exercise activity (468) for the user (150) to perform may be carried out by using the historical exercise activity record (470) to determine historically when a user becomes fatigued relative to duration and intensity of exercise activities; and based on the determination of when the user becomes fatigued, recommending a rest period as the recommended exercise activity (468). In a particular embodiment, the historical exercise activity record (470) may indicate historical rest periods between sets of the same exercise activity and historical rest period activities between sets of different exercise activities. The recommendation evaluation controller may use the historical rest period information along with information indicating the intensity and duration of the historical exercise activities performed before and after the historical rest periods to determine when a rest period should be identified as the recommended activity for the user to perform.

The method of FIG. 4 also includes the recommendation evaluation controller (499) providing (408) an indication (480) of the recommended exercise activity. Providing (408) an indication (480) of the recommended exercise activity may be carried out by communicating the indication of the recommended exercise activity to the user. Providing an indication of the recommended exercise activity may also include communicating an explanation for why the recommended exercise activity is being recommended. For example, the recommendation evaluation controller may transmit an audio message to the user via a speaker or audio output on the wearable monitoring device. In this example, the audio message may identify the recommended exercise activity along with an explanation for why the recommended exercise activity is being recommended. Non-limiting examples of explanations for why the recommended exercise activity is being recommended include: “this exercise activity is more in line with your fitness goals”; “you have performed the same exercise activity over the last week—variation may improve performance, try this exercise activity”; “this exercise activity should help you burn more calories”.

For further explanation, FIG. 5 sets forth a flow chart illustrating another example embodiment of a method for recommending an exercise activity for a user. The method of FIG. 5 is similar to the method of FIG. 4 in that the method of FIG. 5 also includes a recommendation evaluation controller (499) generating (402) a motion pattern (452) based on sensed motion (450) of a user (150); matching (404) the generated motion pattern (452) with a stored motion pattern (456) selected from a plurality (462) of stored motion patterns; identifying (406), based on the selected stored motion pattern (456) and an historical exercise activity record (470) for the user (150), a recommended exercise activity (468) for the user (150) to perform; providing (308) an indication (480) of the recommended exercise activity.

In the example of FIG. 5, identifying (406) a recommended exercise activity (468) for the user (150) to perform optionally includes identifying (502) a recommended exercise activity (468) further based on an identified fitness goal (540) of the user (150). An identified fitness goal of a user is any indication of the fitness goal a user is trying to achieve. Non-limiting examples of fitness goals include losing weight, gaining weight, building muscle, burning fat, building cardio endurance, building high intensity short interval cardio endurance, building long distance cardio endurance, or any indication of a change or measure that the user is interesting in achieving. For example, a user may indicate that the user's fitness goal is to build muscle. Continuing with this example, the recommendation evaluation controller (499) may recommend that a user stop running and instead perform another exercise activity, such as leg squats, which target the same muscle group as running but may result in a faster gain in muscle mass than running.

In the example of FIG. 5, identifying (406) a recommended exercise activity (468) for the user (150) to perform optionally includes identifying (504) a recommended exercise activity (468) further based on a caloric intake (552) of the user (150). A user may input the caloric intake to the wearable monitoring device or the wearable monitoring may retrieve the information regarding caloric intake from another device, such as a network server. In a particular embodiment, the recommendation evaluation controller (499) receives an indication of the number of calories that the user has consumed. For example, the user (150) may specify that three thousand calories have been consumed during the day. In this example, the recommendation evaluation controller may determine that the user has consumed too many calories and therefore the recommendation evaluation controller may recommend an exercise activity that has a higher calorie burn rate than the exercise activity that the user is currently performing. Continuing with this example, the recommendation evaluation controller may also include a suggested duration to perform the recommended exercise activity. In another embodiment, the recommendation evaluation controller (499) receives an indication of the type of food that the user consumed during the day. For example, the user may specify high carbohydrate foods were recently consumed. Continuing with this example, the recommendation evaluation controller may determine that given the user's carbohydrate consumption, the user's most effective workout would be a cardio exercise activity. In this example, the recommendation evaluation controller may recommend a user stop performing a weight lighting exercise activity and instead switch to a cardio exercise activity.

In the example of FIG. 5, identifying (406) a recommended exercise activity (468) for the user (150) to perform optionally includes identifying (504) a recommended exercise activity (468) further based on environmental condition data (554) indicating a condition of an environment that the user is experiencing. Environmental condition data are any indications of the environment that the user is performing the exercise activity. In a particular embodiment, environmental condition data may indicate weather conditions, such as humidity level, precipitation measurements, cloud coverage, and temperature. Environmental condition data may also indicate whether the user is inside or outside. For example, a user may provide input to the wearable monitoring device indicating that the user is indoors. In another embodiment, environmental condition data may be measured by the wearable monitoring device. For example, the wearable monitoring device may include a sensor that monitors humidity level or temperature surrounding the wearable monitoring device. In another embodiment, the wearable monitoring device may use one or more network interfaces to receive indications of environmental conditions, such as from a weather indication application, or from a local environmental condition indication device, such as a networked humidity and temperature sensor.

In the example of FIG. 5, identifying (406) a recommended exercise activity (468) for the user (150) to perform optionally includes identifying (504) a recommended exercise activity (468) further based on sensed physiological data (556) indicating at least one vital sign of the user. Physiological data is data generated from sensors monitoring one or more vital signs of a user. Non-limiting examples of physiological data include hydration measurements, heart rate, oxygen saturation, temperature, muscle contractions, blood pressure, and any other types of measurements indicating a vital sign of a person. Identifying a recommended exercise activity based on physiological data may include comparing the physiological data to a threshold and recommending a different exercise activity that may lower a value of the physiological data to below the threshold. For example, the physiological data may indicate a hydration level of a user. In this example, the recommendation evaluation controller may determine if the hydration level of the user is below a hydration level threshold and recommending a specific type of exercise activity if the user's hydration level is below the hydration level threshold. The recommendation evaluation controller may also include a specific hydration level threshold for each particular exercise activity. For example, if a user is running outside and the recommendation evaluation controller determines that the user's hydration level is below the hydration level threshold associated with running outside, the recommendation evaluation controller may recommend an exercise activity that is indoors where the environment is cooler and less humid than outdoors. As another example, the recommendation evaluation controller may determine that a user's body temperature is above a threshold. In this example, the recommendation evaluation controller may identify for the user to perform, an exercise activity that is indoors.

For further explanation, FIG. 6 sets forth a flow chart illustrating another example embodiment of a method for recommending an exercise activity for a user. The method of FIG. 6 is similar to the method of FIG. 4 in that the method of FIG. 6 also includes a recommendation evaluation controller (499) generating (402) a motion pattern (452) based on sensed motion (450) of a user (150); matching (404) the generated motion pattern (452) with a stored motion pattern (456) selected from a plurality (462) of stored motion patterns; identifying (406), based on the selected stored motion pattern (456) and an historical exercise activity record (470) for the user (150), a recommended exercise activity (468) for the user (150) to perform; providing (308) an indication (480) of the recommended exercise activity.

In the example of FIG. 6, identifying (406), based on the selected stored motion pattern (456) and sensed physiological data (470), a recommended exercise activity (468) for the user (150) to perform includes identifying (602) an exercise activity category (650) associated with the selected stored motion pattern (456). An exercise activity category may be a grouping of similar types of exercise activities. Non-limiting examples of exercise activity categories include cardio exercise activities, weightlifting exercise activities, yoga exercise activities, and many others. Also, a particular exercise activity may be associated with multiple categories or sub categories. For example, a bench press exercise activity may be part of a weightlifting exercise activity category and a pectoral muscle exercise activity category. Identifying (602) an exercise activity category (650) associated with the selected stored motion pattern (456) may be carried out by consulting a table containing the associations between a stored motion pattern and an identification of one or more exercise categories.

In the example of FIG. 6, identifying (406), based on the selected stored motion pattern (456) and sensed physiological data (470), a recommended exercise activity (468) for the user (150) to perform includes identifying (604) a plurality (652) of exercise activities that are associated with the identified exercise activity category (650). Identifying (604) a plurality (652) of exercise activities that are associated with the identified exercise activity category (650) may be carried out by retrieving one or more other exercise activities that are also associated with the exercise activity category.

In the example of FIG. 6, identifying (406), based on the selected stored motion pattern (456) and sensed physiological data (470), a recommended exercise activity (468) for the user (150) to perform includes selecting (606) a particular exercise activity (654) from the identified plurality (652) of exercise activities, as the recommended exercise activity (468) for the user (150) to perform. Selecting (606) a particular exercise activity (654) from the identified plurality (652) of exercise activities, as the recommended exercise activity (468) for the user (150) to perform may be carried out by selecting an exercise activity based on one or more factors, such as the user's past performance of each exercise activity, environmental conditions, and physiological data.

For further explanation, FIG. 7 sets forth a flow chart illustrating another example embodiment of a method for recommending an exercise activity for a user. The method of FIG. 7 is similar to the method of FIG. 4 in that the method of FIG. 7 also includes a recommendation evaluation controller (499) generating (402) a motion pattern (452) based on sensed motion (450) of a user (150); matching (404) the generated motion pattern (452) with a stored motion pattern (456) selected from a plurality (462) of stored motion patterns; identifying (406), based on the selected stored motion pattern (456) and an historical exercise activity record (470) for the user (150), a recommended exercise activity (468) for the user (150) to perform; providing (308) an indication (480) of the recommended exercise activity.

The method of FIG. 7 includes the recommendation evaluation controller (499) tracking (702) the number (750) of times that the motion pattern (452) is generated within a period (752) of time. Tracking (702) the number (750) of times that the motion pattern (452) is generated within a period (752) of time may be carried out by incrementing a counter for each representation of an exercise activity. For example, the recommendation evaluation controller may increment a counter every time that the recommendation evaluation controller matches a motion pattern that indicates the user's motion corresponds to a performance of a push-up.

In the method of FIG. 7, identifying (406) a recommended exercise activity (468) for the user (150) to perform is optionally further based on the tracked number (750) of times that the generated motion pattern (452) is generated. Identifying (406) a recommended exercise activity (468) based on the tracked number (750) of times that the generated motion pattern (452) is generated may be carried out by determining optimal amounts of reps and sets that a user should perform of an exercise activity; comparing the tracked number to a threshold; and recommending other exercise activities based on the comparison of the tracked number to the threshold. For example, the recommendation evaluation controller may recommend the user switch to bench press after the user performs a particular number of incline press exercise activities. As another example, the recommendation evaluation controller may recommend the user switch to a weightlifting exercise activity after running a particular distance or a set number of steps.

For further explanation, FIG. 8 sets forth a data flow diagram illustrating a manufacturing process (800) for a device that includes a recommendation evaluation controller. Physical device information (802 is received at the manufacturing process (800), such as at a research computer (806). The physical device information (802) may include design information representing at least one physical property of a semiconductor device, such as a device that includes the recommendation evaluation controller (199) of FIG. 1 (e.g., the wearable monitoring device (101) of FIG. 1). For example, the physical device information (802) may include physical parameters, material characteristics, and structure information that is entered via a user interface (804) coupled to the research computer (806). The research computer (806) includes a processor (808), such as one or more processing cores, coupled to a computer readable medium such as a memory (810). The memory (810) may store computer readable instructions that are executable to cause the processor (808) to transform the physical device information (802) to comply with a file format and to generate a library file (812) containing evaluation logic for recommending an exercise activity for a user.

In a particular embodiment, the library file (812) includes at least one data file including the transformed design information. For example, the library file (812) may include a library of semiconductor devices including a device that includes the recommendation evaluation controller (199) of FIG. 1 (e.g., the wearable monitoring device (101) of FIG. 1) that is provided to use with an electronic design automation (EDA) tool (820).

The library file (812) may be used in conjunction with the EDA tool (820) at a design computer (814) including a processor (816), such as one or more processing cores, coupled to a memory (818). The EDA tool (820) may be stored as processor executable instructions at the memory (818) to enable a user of the design computer (814) to design a circuit including a device that includes the recommendation evaluation controller (199) of FIG. 1 (e.g., the wearable monitoring device (101) of FIG. 1) of the library file (812). For example, a user of the design computer (814) may enter circuit design information (822) via a user interface (824) coupled to the design computer (814). The circuit design information (822) may include design information representing at least one physical property of a semiconductor device, such as a device that includes the recommendation evaluation controller (199) of FIG. 1 (e.g., the wearable monitoring device (101) of FIG. 1). To illustrate, the circuit design property may include identification of particular circuits and relationships to other elements in a circuit design, positioning information, feature size information, interconnection information, or other information representing a physical property of a semiconductor device.

The design computer (814) may be configured to transform the design information, including the circuit design information (822), to comply with a file format. To illustrate, the file formation may include a database binary file format representing planar geometric shapes, text labels, and other information about a circuit layout in a hierarchical format, such as a Graphic Data System (GDSII) file format. The design computer (814) may be configured to generate a data file including the transformed design information, such as a GDSII file (826) that includes information describing a device that includes evaluation logic used by the recommendation evaluation controller (199) of FIG. 1 (e.g., the wearable monitoring device (101) of FIG. 1) for recommending an exercise activity for a user in addition to other circuits or information. To illustrate, the data file may include information corresponding to a system-on-chip (SOC) that includes a device that includes the recommendation evaluation controller (199) of FIG. 1 (e.g., the wearable monitoring device (101) of FIG. 1) and that also includes additional electronic circuits and components within the SOC.

The GDSII file (826) may be received at a fabrication process (828) to manufacture a device that includes the recommendation evaluation controller (199) of FIG. 1 (e.g., the wearable monitoring device (101) of FIG. 1) according to transformed information in the GDSII file (826). For example, a device manufacture process may include providing the GDSII file (826) to a mask manufacturer (830) to create one or more masks, such as masks to be used with photolithography processing, illustrated as a representative mask (832). The mask (832) may be used during the fabrication process to generate one or more wafers (834), which may be tested and separated into dies, such as a representative die (836). The die (836) includes a circuit including a device that includes the recommendation evaluation controller (199) of FIG. 1 (e.g., the wearable monitoring device (101) of FIG. 1).

The die (836) may be provided to a packaging process (838) where the die (836) is incorporated into a representative package (840). For example, the package (840) may include the single die (836) or multiple dies, such as a system-in-package (SiP) arrangement. The package (840) may be configured to conform to one or more standards or specifications, such as Joint Electron Device Engineering Council (JEDEC) standards.

Information regarding the package (840) may be distributed to various product designers, such as via a component library stored at a computer (846). The computer (846) may include a processor (848), such as one or more processing cores, coupled to a memory (850). A printed circuit board (PCB) tool may be stored as processor executable instructions at the memory (850) to process PCB design information (842) received from a user of the computer (846) via a user interface (844). The PCB design information (842) may include physical positioning information of a packaged semiconductor device on a circuit board, the packaged semiconductor device corresponding to the package (840) including a device that includes the recommendation evaluation controller (199) of FIG. 1 (e.g., the wearable monitoring device (101) of FIG. 1).

The computer (846) may be configured to transform the PCB design information (842) to generate a data file, such as a GERBER file (852) with data that includes physical positioning information of a packaged semiconductor device on a circuit board, as well as layout of electrical connections such as traces and vias, where the packaged semiconductor device corresponds to the package (840) including the recommendation evaluation controller (199) of FIG. 1. In other embodiments, the data file generated by the transformed PCB design information may have a format other than a GERBER format.

The GERBER file (852) may be received at a board assembly process (854) and used to create PCBs, such as a representative PCB (856), manufactured in accordance with the design information stored within the GERBER file (852). For example, the GERBER file (852) may be uploaded to one or more machines to perform various steps of a PCB production process. The PCB (856) may be populated with electronic components including the package (840) to form a representative printed circuit assembly (PCA) (858).

The PCA (858) may be received at a product manufacture process (860) and integrated into one or more electronic devices, such as a first representative electronic device (862) and a second representative electronic device (864). As an illustrative, non-limiting example, the first representative electronic device (862), the second representative electronic device (864), or both, may be selected from the group of a set top box, a music player, a video player, an entertainment unit, a navigation device, a communications device, a personal digital assistant (PDA), a fixed location data unit, and a computer, into which the at least one controllable energy consuming module is integrated. As another illustrative, non-limiting example, one or more of the electronic devices (862) and (864) may be remote units such as mobile phones, hand-held personal communication systems (PCS) units, portable data units such as personal data assistants, global positioning system (GPS) enabled devices, navigation devices, fixed location data units such as meter reading equipment, or any other device that stores or retrieves data or computer instructions, or any combination thereof. Although FIG. 8 illustrates remote units according to teachings of the disclosure, the disclosure is not limited to these exemplary illustrated units. Embodiments of the disclosure may be suitably employed in any device which includes active integrated circuitry including memory and on-chip circuitry.

A device that includes the recommendation evaluation controller (199) of FIG. 1 may be fabricated, processed, and incorporated into an electronic device, as described in the illustrative process (800). One or more aspects of the embodiments disclosed with respect to FIGS. 1-7 may be included at various processing stages, such as within the library file (812), the GDSII file (826), and the GERBER file (852), as well as stored at the memory (810) of the research computer (806), the memory (818) of the design computer (814), the memory (850) of the computer (846), the memory of one or more other computers or processors (not shown) used at the various stages, such as at the board assembly process (854), and also incorporated into one or more other physical embodiments such as the mask (832), the die (836), the package (840), the PCA (858), other products such as prototype circuits or devices (not shown), or any combination thereof. For example, the GDSII file (826) or the fabrication process (828) can include a computer readable tangible medium storing instructions executable by a computer, the instructions including instructions that are executed by the computer to perform the methods of FIGS. 3-7, or any combination thereof. Although various representative stages of production from a physical device design to a final product are depicted, in other embodiments fewer stages may be used or additional stages may be included. Similarly, the process (800) may be performed by a single entity, or by one or more entities performing various stages of the process (800).

Those of skill would further appreciate that the various illustrative logical blocks, configurations, modules, circuits, and method steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software executed by a processing unit, or combinations of both. Various illustrative components, blocks, configurations, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or executable processing instructions depends on the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways with each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in random access memory (RAM), a magnetoresistive random access memory (MRAM), a spin-torque-transfer MRAM (STT-MRAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disk, a removable disk, a compact disc read-only memory (CD-ROM), or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an application-specific integrated circuit (ASIC). The ASIC may reside in a computing device or a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a computing device or user terminal.

The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the disclosed embodiments. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the principles defined herein may be applied to other embodiments without departing from the scope of the disclosure. Thus, the present disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope possible consistent with the principles and novel features as defined by the following claims. 

What is claimed is:
 1. A method of recommending an exercise activity for a user, the method comprising: matching, by the recommendation evaluation controller, a generated motion pattern based on sensed motion of the user with a stored motion pattern selected from a plurality of stored motion patterns; wherein each stored motion pattern is predefined to correspond with a particular exercise activity; identifying, based on the selected stored motion pattern and an historical exercise activity record for the user, by the recommendation evaluation controller, a recommended exercise activity for the user to perform; and providing, by the recommendation evaluation controller, an indication of the recommended exercise activity.
 2. The method of claim 1 wherein identifying a recommended exercise activity for the user to perform is further based on environmental condition data indicating a condition of an environment of the user.
 3. The method of claim 1 wherein identifying a recommended exercise activity for the user to perform is further based on an identified fitness goal of the user.
 4. The method of claim 1 wherein identifying a recommended exercise activity for the user to perform is further based on an indication of a caloric intake of the user.
 5. The method of claim 1 wherein identifying a recommended exercise activity for the user to perform is further based on sensed physiological data indicating at least one vital sign of the user.
 6. The method of claim 5 wherein the physiological data includes at least one of a hydration level measurement, a heart rate measurement, an ECG measurement, a pulse oximeter measurement, and a temperature of the user.
 7. The method of claim 1 wherein identifying a recommended exercise activity for the user to perform includes: identifying an exercise activity category associated with the selected stored motion pattern; identifying a plurality of exercise activities that are associated with the identified exercise activity category; and selecting a particular exercise activity from the identified plurality of exercise activities, as the recommended exercise activity for the user to perform.
 8. The method of claim 1 further comprising tracking the number of times that the motion pattern is generated within a period of time.
 9. The method of claim 8 wherein identifying a recommended exercise activity for the user to perform is further based on the tracked number of times that the generated motion pattern is generated.
 10. An apparatus for recommending an exercise activity for a user, the apparatus comprising a computer processor and computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of: matching, by the recommendation evaluation controller, a generated motion pattern based on sensed motion of the user with a stored motion pattern selected from a plurality of stored motion patterns; wherein each stored motion pattern is predefined to correspond with a particular exercise activity; identifying, based on the selected stored motion pattern and an historical exercise activity record for the user, by the recommendation evaluation controller, a recommended exercise activity for the user to perform; and providing, by the recommendation evaluation controller, an indication of the recommended exercise activity.
 11. The apparatus of claim 10 wherein identifying a recommended exercise activity for the user to perform is further based on environmental condition data indicating a condition of an environment of the user.
 12. The apparatus of claim 10 wherein identifying a recommended exercise activity for the user to perform is further based on an identified fitness goal of the user.
 13. The apparatus of claim 10 wherein identifying a recommended exercise activity for the user to perform is further based on an indication of a caloric intake of the user.
 14. The apparatus of claim 10 wherein identifying a recommended exercise activity for the user to perform is further based on sensed physiological data indicating at least one vital sign of the user.
 15. The apparatus of claim 14 wherein the physiological data includes at least one of a hydration level measurement, a heart rate measurement, an ECG measurement, a pulse oximeter measurement, and a temperature of the user.
 16. The apparatus of claim 10 wherein identifying a recommended exercise activity for the user to perform includes: identifying an exercise activity category associated with the selected stored motion pattern; identifying a plurality of exercise activities that are associated with the identified exercise activity category; and selecting a particular exercise activity from the identified plurality of exercise activities, as the recommended exercise activity for the user to perform.
 17. The apparatus of claim 10 further comprising tracking the number of times that the motion pattern is generated within a period of time.
 18. The apparatus of claim 17 wherein identifying a recommended exercise activity for the user to perform is further based on the tracked number of times that the generated motion pattern is generated.
 19. A computer readable storage medium storing instructions executable by a computer for recommending an exercise activity for a user, the instructions comprising: instructions that are executable by the computer to match a generated motion pattern that is based on sensed motion of the user with a stored motion pattern selected from a plurality of stored motion patterns; wherein each stored motion pattern is predefined to correspond with a particular exercise activity; instructions that are executable by the computer to identify, based on the selected stored motion pattern and an historical exercise activity record for the user, a recommended exercise activity for the user to perform; and instructions that are executable by the computer to provide an indication of the recommended exercise activity.
 20. The computer readable storage medium of claim 19 wherein the instructions are executable by a processor integrated into a device selected from the group consisting of a navigation device, a communications device, a personal digital assistant (PDA), a fixed location data unit, and a computer. 